// 等待DOM完全加载
document.addEventListener('DOMContentLoaded', function() {
    const forgotForm = document.querySelector('.forgot-form');
    
    if (forgotForm) {
        forgotForm.addEventListener('submit', function(e) {
            e.preventDefault();
            
            // 获取表单数据
            const formData = {
                phone: document.getElementById('phone').value.trim(),
                idCard: document.getElementById('id-card').value.trim(), // 注意：HTML中需要添加id="id-card"
                newPassword: document.getElementById('new-password').value.trim(),
                confirmPassword: document.getElementById('confirm-password').value.trim()
            };

            // 表单验证
            if (validateForm(formData)) {
                resetPassword(formData);
            }
        });
    }

    // 实时验证手机号格式
    const phoneInput = document.getElementById('phone');
    if (phoneInput) {
        phoneInput.addEventListener('input', validatePhoneFormat);
    }

    // 实时验证身份证格式
    const idCardInput = document.getElementById('id-card');
    if (idCardInput) {
        idCardInput.addEventListener('input', validateIdCardFormat);
    }
});

// 表单验证函数
function validateForm(formData) {
    // 验证手机号
    const phonePattern = /^1[3-9]\d{9}$/;
    if (!phonePattern.test(formData.phone)) {
        alert('请输入有效的11位手机号码');
        return false;
    }

    // 验证身份证号
    const idCardPattern = /^\d{17}[\dXx]$/;
    if (!idCardPattern.test(formData.idCard)) {
        alert('请输入有效的18位身份证号(最后一位可以是X)');
        return false;
    }

    // 验证新密码
    if (formData.newPassword.length < 6) {
        alert('密码长度不能少于6位');
        return false;
    }

    // 验证确认密码
    if (formData.newPassword !== formData.confirmPassword) {
        alert('两次输入的密码不一致');
        return false;
    }

    return true;
}

// 重置密码函数
function resetPassword(formData) {
    const resetBtn = document.querySelector('.reset-btn');
    if (!resetBtn) return;

    const originalText = resetBtn.textContent;
    resetBtn.disabled = true;
    resetBtn.textContent = '处理中...';

    fetch('http://localhost:8080/api/resetPass', {
        method: 'POST',
        headers: { 'Content-Type': 'application/json' },
        body: JSON.stringify({
            phone: formData.phone,
            id_card: formData.idCard,
            password: formData.newPassword
        })
    })
    .then(response => {
        // 首先检查HTTP状态码
        if (response.status !== 200) {
            return response.json().then(err => {
                throw new Error(err.message || `请求失败，状态码: ${response.status}`);
            });
        }
        return response.json(); // 只有状态码为200时才解析JSON
    })
    .then(data => {
        if (data.code === 200) { // 明确检查业务状态码
            alert(data.message);
            window.location.href = 'login.html';
        } else {
            throw new Error(data.message || '操作未成功');
        }
    })
    .catch(error => {
        console.error('密码重置错误:', error);
        alert(error.message); 
    })
    .finally(() => {
        resetBtn.disabled = false;
        resetBtn.textContent = originalText;
    });
}

// 实时验证手机号格式
function validatePhoneFormat() {
    const input = document.getElementById('phone');
    const phonePattern = /^1[3-9]\d{0,9}$/;
    if (!phonePattern.test(input.value)) {
        input.setCustomValidity('请输入有效的手机号');
    } else {
        input.setCustomValidity('');
    }
}

// 实时验证身份证格式
function validateIdCardFormat() {
    const input = document.getElementById('id-card');
    const idCardPattern = /^\d{0,17}[\dXx]?$/;
    if (!idCardPattern.test(input.value)) {
        input.setCustomValidity('请输入有效的身份证号');
    } else {
        input.setCustomValidity('');
    }
    
    // 自动将最后一位转为大写
    if (input.value.length === 18) {
        input.value = input.value.slice(0, 17) + input.value.slice(17).toUpperCase();
    }
}